package com.nuanshui.heatedloan.fund.facade;

import com.nuanshui.heatedloan.fund.model.UserFreezeFundAction;

import java.util.Map;


/**
 * 用户保证金流动service
 * @ClassName: UserFreezeFundActionService 
 * @author zhangqing
 * @date 2016-02-20
 * @since 2.4.0
 */
public interface UserFreezeFundActionService {
	
	/**
	 * 保存保证金的相关操作
	 * @param 
	 * @author zhangqing
	 * @date 2016年2月17日 上午11:19:19
	 */
    void saveUserFreezeFundAction(UserFreezeFundAction userFreezeFundAction);
	
	/**
	 * 获取用户缴纳的保证金数额
	 * @param 
	 * @author zhangqing
	 * @date 2016年2月17日 下午12:07:06
	 * @since 2.4.0
	 */
    Long getUserFreezeFund(String userId);
	
	/**
	 * 获取用户缴纳的保证金数额
	 * @param 
	 * @author zhangqing
	 * @date 2016年2月17日 下午12:07:06
	 * @since 2.4.0
	 */
    Long getUserAllFreezeFund(String userId);
	
	/**
	 * 查询用户是否存在解冻中的保证金
	 * @param 
	 * @author zhangqing
	 * @date 2016年2月17日 下午12:07:06
	 * @since 2.4.0
	 */
    Long getUserFreezeFundStatus(String userId);
	
	/**
	 * 审核解冻保证金
	 * @author Junyan2015
	 * @date 2016年2月18日 上午9:09:10
	 * @param freezeId
	 * @param isPass
	 * @param billId
	 */
    void checkUserFreezeFundAction(String freezeId, Integer isPass, String billId);
	
	/**
	 * 缴纳保证金
	 * @param 
	 * @author zhangqing
	 * @date 2016年2月18日 下午5:39:20
	 */
    String payFreezeFund(Long money, String currentUserId);
	
	/**
	 * 解冻保证金
	 * @param 
	 * @author zhangqing
	 * @date 2016年2月18日 下午5:39:20
	 */
    Map<String, Object> applyFreezeFundStatus(String currentUserId);
	
	/**
	 * 获取保证金状态
	 * @param 
	 * @author zhangqing
	 * @date 2016年2月18日 下午5:52:36
	 */
    Map<String, Object> getFreezeFundStatus(String currentUserId);
	
	/**
	 * 确认用户缴纳保证金接口
	 * @param 
	 * @author guohao
	 * @date 2016年2月23日 下午2:26:47
	 */
    boolean confirmUserMargin(Long money, String orderNum, String payType);

}
